/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package projeto1;

import projeto1.Client;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
/**
 *
 * @author Nicholas
 */
public class LeitorTxt {
    private int idCurriculo;
    private int idDisciplina;
    private int idGrupoEletiva;
    private int numCreditos = 1;
    private Client c = new Client();
    public void lerTxt(String catalogo,String cursocodigo){
		String cursonome = "";
		int nummodalidades = 0;
		String[] modalidadescodigos = new String[10];
		String[] modalidadesnomes = new String[10];
		
		int numdisciplinas = 0;
		String[] disciplinascodigos = new String[200];
		String[] disciplinasnomes = new String[200];
		
		int numdisciplinascoincidentes = 0;
		String[] disciplinascoincidentesrelacoes = new String[200];
		String[] disciplinascoincidentescodigos = new String[200];
		String[] disciplinascoincidentesnomes = new String[200];
		String[] disciplinascoincidentesgruposeletivas = new String[50];
		
		int[] numdisciplinascurriculos = new int[10];
		String[][] disciplinascurriculosrelacoes = new String[10][200];
		String[][] disciplinascurriculoscodigos = new String[10][200];
		String[][] disciplinascurriculosnomes = new String[10][200];
		String[][] disciplinascurriculosgruposeletivas = new String [10][50];
		int[] disciplinascurriculosnumgruposeletivas = new int[10];
		
		int gruposeletivas=0;
		
		BufferedReader br = null;
		
		try {
			br = new BufferedReader(new InputStreamReader(new FileInputStream("temp.txt"),"ISO-8859-1"));
			String line;
			
			line=br.readLine();
			cursonome = line;
			
			while((line=br.readLine()) !=null){
				if(!(line.trim().equals(""))){
					if(nummodalidades == 0){
						disciplinascoincidentesrelacoes[numdisciplinascoincidentes] = new StringBuilder().append(line.charAt(0)).append(line.charAt(1)).append(line.charAt(2)).toString();
						disciplinascoincidentescodigos[numdisciplinascoincidentes] = new StringBuilder().append(line.charAt(4)).append(line.charAt(5)).append(line.charAt(6)).append(line.charAt(7)).append(line.charAt(8)).toString();
						disciplinascoincidentesnomes[numdisciplinascoincidentes] = line.substring(9);
						numdisciplinascoincidentes++;
						
						disciplinascodigos[numdisciplinas] = new StringBuilder().append(line.charAt(4)).append(line.charAt(5)).append(line.charAt(6)).append(line.charAt(7)).append(line.charAt(8)).toString();
						disciplinasnomes[numdisciplinas] = line.substring(9);
					}
					else{
						disciplinascurriculosrelacoes[nummodalidades-1][numdisciplinascurriculos[nummodalidades-1]]=new StringBuilder().append(line.charAt(0)).append(line.charAt(1)).append(line.charAt(2)).toString();
						disciplinascurriculoscodigos[nummodalidades-1][numdisciplinascurriculos[nummodalidades-1]]=new StringBuilder().append(line.charAt(4)).append(line.charAt(5)).append(line.charAt(6)).append(line.charAt(7)).append(line.charAt(8)).toString();
						disciplinascurriculosnomes[nummodalidades-1][numdisciplinascurriculos[nummodalidades-1]]=line.substring(9);
						numdisciplinascurriculos[nummodalidades-1]++;
						
						disciplinascodigos[numdisciplinas] = new StringBuilder().append(line.charAt(4)).append(line.charAt(5)).append(line.charAt(6)).append(line.charAt(7)).append(line.charAt(8)).toString();
						disciplinasnomes[numdisciplinas] = line.substring(9);
					}
					numdisciplinas ++;
				}
			
				else{
					if((line=br.readLine()).trim()!=""){
						String[] parts = line.split("-");
						modalidadescodigos[nummodalidades] = parts[0].trim();
						modalidadesnomes[nummodalidades] = parts[1].trim();
						nummodalidades++;
						for(int i=0;i<numdisciplinascoincidentes;i++){
							disciplinascurriculosrelacoes[nummodalidades-1][i]=disciplinascoincidentesrelacoes[i];
							disciplinascurriculoscodigos[nummodalidades-1][i]=disciplinascoincidentescodigos[i];
							disciplinascurriculosnomes[nummodalidades-1][i]=disciplinascoincidentesnomes[i];
							numdisciplinascurriculos[nummodalidades-1]++;
						}
					}
				}
			}

			/*if(nummodalidades==0){
				for(int i = 0;i<numdisciplinascoincidentes;i++){
					//System.out.println(disciplinascoincidentesrelacoes[i]+" "+disciplinascoincidentescodigos[i]+" "+disciplinascoincidentesnomes[i]);
                                        idCurriculo = c.populaCursoCurriculo(cursonome,cursocodigo,"","",catalogo);
                                        idDisciplina = c.populaDisciplina(disciplinascoincidentesnomes[i],disciplinascoincidentescodigos[i]);
                                        idGrupoEletiva = c.populaGrupoEletiva(Integer.toString(numCreditos));
                                        c.populaDisciplinaCurriculo(Integer.toString(idCurriculo), Integer.toString(idDisciplina), disciplinascoincidentesrelacoes[i], Integer.toString(idGrupoEletiva));
                                        
                                        
				}
			}
			else{
				for(int i=0;i<nummodalidades;i++){
					//System.out.println(modalidadescodigos[i]+" "+modalidadesnomes[i]);
                                        idCurriculo = c.populaCursoCurriculo(cursonome,cursocodigo,modalidadesnomes[i],modalidadescodigos[i],catalogo);
					for(int j = 0;j<numdisciplinascurriculos[i];j++){
						//System.out.println(disciplinascurriculosrelacoes[i][j]+" "+disciplinascurriculoscodigos[i][j]+" "+disciplinascurriculosnomes[i][j]);
                                                idDisciplina = c.populaDisciplina(disciplinascurriculosnomes[i][j],disciplinascurriculoscodigos[i][j]);
                                                idGrupoEletiva = c.populaGrupoEletiva(Integer.toString(numCreditos));
                                                c.populaDisciplinaCurriculo(Integer.toString(idCurriculo), Integer.toString(idDisciplina), disciplinascurriculosrelacoes[i][j], Integer.toString(idGrupoEletiva));
					}
					//System.out.println("");
				}
			}*/
			
			if(nummodalidades==0){
				for(int i = 0;i<numdisciplinascoincidentes;i++){
					if(disciplinascoincidentesrelacoes[i]!="MOD" && disciplinascoincidentesrelacoes[i]!="PLE"){								// NEEW
						if(Arrays.asList(disciplinascoincidentesgruposeletivas).contains(disciplinascoincidentesrelacoes[i])){ 				
							idCurriculo = c.populaCursoCurriculo(cursonome,cursocodigo,"","",catalogo);
                                                        idDisciplina = c.populaDisciplina(disciplinascoincidentesnomes[i],disciplinascoincidentescodigos[i]);
                                                        c.populaDisciplinaCurriculo(Integer.toString(idCurriculo), Integer.toString(idDisciplina), disciplinascoincidentesrelacoes[i], Integer.toString(idGrupoEletiva));
						}																													
						else{									
							disciplinascoincidentesgruposeletivas[gruposeletivas]=disciplinascoincidentesrelacoes[i];
							gruposeletivas++;
                                                        idCurriculo = c.populaCursoCurriculo(cursonome,cursocodigo,"","",catalogo);
                                                        idDisciplina = c.populaDisciplina(disciplinascoincidentesnomes[i],disciplinascoincidentescodigos[i]);
                                                        idGrupoEletiva = c.populaGrupoEletiva(Integer.toString(numCreditos));
                                                        c.populaDisciplinaCurriculo(Integer.toString(idCurriculo), Integer.toString(idDisciplina), disciplinascoincidentesrelacoes[i], Integer.toString(idGrupoEletiva));
						}
					}
					
					else{
						//System.out.println(disciplinascoincidentesrelacoes[i]+" "+disciplinascoincidentescodigos[i]+" "+disciplinascoincidentesnomes[i]);
                                                idCurriculo = c.populaCursoCurriculo(cursonome,cursocodigo,"","",catalogo);
                                                idDisciplina = c.populaDisciplina(disciplinascoincidentesnomes[i],disciplinascoincidentescodigos[i]);
                                                idGrupoEletiva = 0;
                                                c.populaDisciplinaCurriculo(Integer.toString(idCurriculo), Integer.toString(idDisciplina), disciplinascoincidentesrelacoes[i], Integer.toString(idGrupoEletiva));
					}																														// NEEW
				}
			}
			else{
				for(int i=0;i<nummodalidades;i++){
					//System.out.println(modalidadescodigos[i]+" "+modalidadesnomes[i]);
                                        idCurriculo = c.populaCursoCurriculo(cursonome,cursocodigo,modalidadesnomes[i],modalidadescodigos[i],catalogo);

                                        for(int j = 0;j<numdisciplinascurriculos[i];j++){
                                                if(!disciplinascurriculosrelacoes[i][j].equals("MOD") && !disciplinascurriculosrelacoes[i][j].equals("PLE")){								// NEEW
                                                        if(Arrays.asList(disciplinascurriculosgruposeletivas[i]).contains(disciplinascurriculosrelacoes[i][j])){ 				
                                                                //idCurriculo = c.populaCursoCurriculo(cursonome,cursocodigo,"","",catalogo);
                                                                idDisciplina = c.populaDisciplina(disciplinascoincidentesnomes[i],disciplinascoincidentescodigos[i]);
                                                                c.populaDisciplinaCurriculo(Integer.toString(idCurriculo), Integer.toString(idDisciplina), disciplinascoincidentesrelacoes[i], Integer.toString(idGrupoEletiva));																												
                                                        }																													
                                                        else{				
                                                                disciplinascurriculosrelacoes[i][disciplinascurriculosnumgruposeletivas[i]]=disciplinascurriculosrelacoes[i][j];
                                                                gruposeletivas++;
                                                                disciplinascurriculosnumgruposeletivas[i]++;
                                                                idDisciplina = c.populaDisciplina(disciplinascurriculosnomes[i][j],disciplinascurriculoscodigos[i][j]);
                                                                idGrupoEletiva = c.populaGrupoEletiva(Integer.toString(numCreditos));
                                                                c.populaDisciplinaCurriculo(Integer.toString(idCurriculo), Integer.toString(idDisciplina), disciplinascurriculosrelacoes[i][j], Integer.toString(idGrupoEletiva));

                                                        }
                                                }

                                                else{
                                                        //System.out.println(disciplinascurriculosrelacoes[i][j]+" "+disciplinascurriculoscodigos[i][j]+" "+disciplinascurriculosnomes[i][j]);
                                                    idDisciplina = c.populaDisciplina(disciplinascurriculosnomes[i][j],disciplinascurriculoscodigos[i][j]);
                                                    idGrupoEletiva = 0;
                                                    c.populaDisciplinaCurriculo(Integer.toString(idCurriculo), Integer.toString(idDisciplina), disciplinascurriculosrelacoes[i][j], Integer.toString(idGrupoEletiva));
                                                }	
                                        }
                                        
					//System.out.println("");
				}
			}
		
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
